<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Pepr3D: pepr3d::TriangleDetail Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="pepr3d_icon.svg"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Pepr3D
   &#160;<span id="projectnumber">v1.0</span>
   </div>
   <div id="projectbrief">Pepr3D is a 3D graphics editor designed for FDM printing</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.15 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classpepr3d_1_1_triangle_detail.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-static-methods">Static Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="classpepr3d_1_1_triangle_detail-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">pepr3d::TriangleDetail Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Represents additional triangles that replace the original one.  
 <a href="classpepr3d_1_1_triangle_detail.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="_triangle_detail_8h_source.html">TriangleDetail.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpepr3d_1_1_triangle_detail_1_1_exact_triangle.html">ExactTriangle</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Exact triangle with colour and polygon information.  <a href="structpepr3d_1_1_triangle_detail_1_1_exact_triangle.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpepr3d_1_1_triangle_detail_1_1_face_info.html">FaceInfo</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Used in triangulation to distinguish filled faces from holes.  <a href="structpepr3d_1_1_triangle_detail_1_1_face_info.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpepr3d_1_1_triangle_detail_1_1_sphere_intersection_visitor.html">SphereIntersectionVisitor</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:ac8aeea781673db9a1310d3754ae88162"><td class="memItemLeft" align="right" valign="top"><a id="ac8aeea781673db9a1310d3754ae88162"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>K</b> = CGAL::Exact_spherical_kernel_3</td></tr>
<tr class="separator:ac8aeea781673db9a1310d3754ae88162"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5859c7791d50841feed809f364e9d7db"><td class="memItemLeft" align="right" valign="top"><a id="a5859c7791d50841feed809f364e9d7db"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>Polygon</b> = CGAL::Polygon_2&lt; K &gt;</td></tr>
<tr class="separator:a5859c7791d50841feed809f364e9d7db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a039d2236b4e8aad6a2e38561632de058"><td class="memItemLeft" align="right" valign="top"><a id="a039d2236b4e8aad6a2e38561632de058"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>PolygonWithHoles</b> = CGAL::Polygon_with_holes_2&lt; K &gt;</td></tr>
<tr class="separator:a039d2236b4e8aad6a2e38561632de058"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3714e9fe2715a106d89ef9db6fe1773"><td class="memItemLeft" align="right" valign="top"><a id="ab3714e9fe2715a106d89ef9db6fe1773"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>GeneralPolygon</b> = CGAL::General_polygon_2&lt; K &gt;</td></tr>
<tr class="separator:ab3714e9fe2715a106d89ef9db6fe1773"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6db5a16950df85449f31b2942a594ee4"><td class="memItemLeft" align="right" valign="top"><a id="a6db5a16950df85449f31b2942a594ee4"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>Circle</b> = TriangleDetail::K::Circle_2</td></tr>
<tr class="separator:a6db5a16950df85449f31b2942a594ee4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a219a64553d6903e53c2a0e554c085be3"><td class="memItemLeft" align="right" valign="top"><a id="a219a64553d6903e53c2a0e554c085be3"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>Circle3</b> = TriangleDetail::K::Circle_3</td></tr>
<tr class="separator:a219a64553d6903e53c2a0e554c085be3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5ad5f3d5e27f70a1f5308103fb49fae"><td class="memItemLeft" align="right" valign="top"><a id="aa5ad5f3d5e27f70a1f5308103fb49fae"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>Sphere</b> = TriangleDetail::K::Sphere_3</td></tr>
<tr class="separator:aa5ad5f3d5e27f70a1f5308103fb49fae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a433097027b9cb64c5cc1773ea3362b24"><td class="memItemLeft" align="right" valign="top"><a id="a433097027b9cb64c5cc1773ea3362b24"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>Triangle2</b> = TriangleDetail::K::Triangle_2</td></tr>
<tr class="separator:a433097027b9cb64c5cc1773ea3362b24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add21fa0f5067429e5214ad6b71dfe0cc"><td class="memItemLeft" align="right" valign="top"><a id="add21fa0f5067429e5214ad6b71dfe0cc"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>PolygonSet</b> = CGAL::Polygon_set_2&lt; K &gt;</td></tr>
<tr class="separator:add21fa0f5067429e5214ad6b71dfe0cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0dd0c71e30197e8ea3917e609aa3b4ed"><td class="memItemLeft" align="right" valign="top"><a id="a0dd0c71e30197e8ea3917e609aa3b4ed"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>Traits</b> = TriangleDetail::PolygonSet::Traits_2</td></tr>
<tr class="separator:a0dd0c71e30197e8ea3917e609aa3b4ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd25e5b8b0ca3a320f8de2f1233e60bd"><td class="memItemLeft" align="right" valign="top"><a id="afd25e5b8b0ca3a320f8de2f1233e60bd"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>PeprPoint2</b> = DataTriangle::K::Point_2</td></tr>
<tr class="separator:afd25e5b8b0ca3a320f8de2f1233e60bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab41625f7067e442f5840dc1ab8bcf2c4"><td class="memItemLeft" align="right" valign="top"><a id="ab41625f7067e442f5840dc1ab8bcf2c4"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>PeprPoint3</b> = DataTriangle::K::Point_3</td></tr>
<tr class="separator:ab41625f7067e442f5840dc1ab8bcf2c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e9128e6fe7dc22dd5f6377282e39ae1"><td class="memItemLeft" align="right" valign="top"><a id="a2e9128e6fe7dc22dd5f6377282e39ae1"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>PeprVector3</b> = DataTriangle::K::Vector_3</td></tr>
<tr class="separator:a2e9128e6fe7dc22dd5f6377282e39ae1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab85cd57fea1decf01a3afe6fbe3ee135"><td class="memItemLeft" align="right" valign="top"><a id="ab85cd57fea1decf01a3afe6fbe3ee135"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>Point2</b> = TriangleDetail::K::Point_2</td></tr>
<tr class="separator:ab85cd57fea1decf01a3afe6fbe3ee135"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a575c3b3f3196a6f23b1944eeb628813a"><td class="memItemLeft" align="right" valign="top"><a id="a575c3b3f3196a6f23b1944eeb628813a"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>Point3</b> = TriangleDetail::K::Point_3</td></tr>
<tr class="separator:a575c3b3f3196a6f23b1944eeb628813a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe6926469de5e0dec620a0b640b1968a"><td class="memItemLeft" align="right" valign="top"><a id="afe6926469de5e0dec620a0b640b1968a"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>Vector2</b> = TriangleDetail::K::Vector_2</td></tr>
<tr class="separator:afe6926469de5e0dec620a0b640b1968a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a61a5b3b8f778b46b50f6d01d62de8a49"><td class="memItemLeft" align="right" valign="top"><a id="a61a5b3b8f778b46b50f6d01d62de8a49"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>Vector3</b> = TriangleDetail::K::Vector_3</td></tr>
<tr class="separator:a61a5b3b8f778b46b50f6d01d62de8a49"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac51978cae21325ae859138c55c9b1f24"><td class="memItemLeft" align="right" valign="top"><a id="ac51978cae21325ae859138c55c9b1f24"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>Plane</b> = TriangleDetail::K::Plane_3</td></tr>
<tr class="separator:ac51978cae21325ae859138c55c9b1f24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abedc3bea984b7db652cb05453bec6ee8"><td class="memItemLeft" align="right" valign="top"><a id="abedc3bea984b7db652cb05453bec6ee8"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>Line3</b> = TriangleDetail::K::Line_3</td></tr>
<tr class="separator:abedc3bea984b7db652cb05453bec6ee8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b06b451a0da04ecbc856b7f47fbeb25"><td class="memItemLeft" align="right" valign="top"><a id="a6b06b451a0da04ecbc856b7f47fbeb25"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>Line2</b> = TriangleDetail::K::Line_2</td></tr>
<tr class="separator:a6b06b451a0da04ecbc856b7f47fbeb25"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab0d804fda63bc0e77791140b7aa0f5b8"><td class="memItemLeft" align="right" valign="top"><a id="ab0d804fda63bc0e77791140b7aa0f5b8"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>Segment3</b> = TriangleDetail::K::Segment_3</td></tr>
<tr class="separator:ab0d804fda63bc0e77791140b7aa0f5b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a198d39df083f914a5885befc81ae9220"><td class="memItemLeft" align="right" valign="top"><a id="a198d39df083f914a5885befc81ae9220"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>Segment2</b> = TriangleDetail::K::Segment_2</td></tr>
<tr class="separator:a198d39df083f914a5885befc81ae9220"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca7cfbf857504802dd7e5de02c107565"><td class="memItemLeft" align="right" valign="top"><a id="aca7cfbf857504802dd7e5de02c107565"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>PeprTriangle</b> = DataTriangle::Triangle</td></tr>
<tr class="separator:aca7cfbf857504802dd7e5de02c107565"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a09abf37409b283619fb5448bbdd08e7d"><td class="memItemLeft" align="right" valign="top"><a id="a09abf37409b283619fb5448bbdd08e7d"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>PeprPlane</b> = DataTriangle::K::Plane_3</td></tr>
<tr class="separator:a09abf37409b283619fb5448bbdd08e7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a19cdbad7a9cc454e6d4a0b9573793278"><td class="memItemLeft" align="right" valign="top"><a id="a19cdbad7a9cc454e6d4a0b9573793278"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>PeprSphere</b> = DataTriangle::K::Sphere_3</td></tr>
<tr class="separator:a19cdbad7a9cc454e6d4a0b9573793278"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4966cf22583406b8fe0f171b09ff7fd5"><td class="memItemLeft" align="right" valign="top"><a id="a4966cf22583406b8fe0f171b09ff7fd5"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>Fbb</b> = CGAL::Triangulation_face_base_with_info_2&lt; <a class="el" href="structpepr3d_1_1_triangle_detail_1_1_face_info.html">FaceInfo</a>, K &gt;</td></tr>
<tr class="separator:a4966cf22583406b8fe0f171b09ff7fd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3bfe107a55791ce912d291832f1c3c5f"><td class="memItemLeft" align="right" valign="top"><a id="a3bfe107a55791ce912d291832f1c3c5f"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>Fb</b> = CGAL::Constrained_triangulation_face_base_2&lt; K, Fbb &gt;</td></tr>
<tr class="separator:a3bfe107a55791ce912d291832f1c3c5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7ea6f709dd9bead683d75616fde6657f"><td class="memItemLeft" align="right" valign="top"><a id="a7ea6f709dd9bead683d75616fde6657f"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>Tds</b> = CGAL::Triangulation_data_structure_2&lt; CGAL::Triangulation_vertex_base_2&lt; K &gt;, Fb &gt;</td></tr>
<tr class="separator:a7ea6f709dd9bead683d75616fde6657f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68c7fa9d0ed3fd567a38f771f69b48b6"><td class="memItemLeft" align="right" valign="top"><a id="a68c7fa9d0ed3fd567a38f771f69b48b6"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>ConstrainedTriangulation</b> = CGAL::Constrained_triangulation_2&lt; K, Tds, CGAL::No_intersection_tag &gt;</td></tr>
<tr class="separator:a68c7fa9d0ed3fd567a38f771f69b48b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a33380ae8d2798829b809316ceb653b4c"><td class="memItemLeft" align="right" valign="top"><a id="a33380ae8d2798829b809316ceb653b4c"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>TriangleDetail</b> (const <a class="el" href="classpepr3d_1_1_data_triangle.html">DataTriangle</a> &amp;original)</td></tr>
<tr class="separator:a33380ae8d2798829b809316ceb653b4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a18e1da05e7fb8b50198a9152d238af85"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpepr3d_1_1_triangle_detail.html#a18e1da05e7fb8b50198a9152d238af85">paintSphere</a> (const PeprSphere &amp;sphere, int minSegments, size_t color)</td></tr>
<tr class="memdesc:a18e1da05e7fb8b50198a9152d238af85"><td class="mdescLeft">&#160;</td><td class="mdescRight">Paint sphere onto this detail.  <a href="#a18e1da05e7fb8b50198a9152d238af85">More...</a><br /></td></tr>
<tr class="separator:a18e1da05e7fb8b50198a9152d238af85"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a74eeb9464b6262f5d0b9ec2c8a0c4964"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpepr3d_1_1_triangle_detail.html#a74eeb9464b6262f5d0b9ec2c8a0c4964">paintShape</a> (const std::vector&lt; PeprPoint3 &gt; &amp;shape, const PeprVector3 &amp;direction, size_t color)</td></tr>
<tr class="memdesc:a74eeb9464b6262f5d0b9ec2c8a0c4964"><td class="mdescLeft">&#160;</td><td class="mdescRight">Paint a shape to triangle detail.  <a href="#a74eeb9464b6262f5d0b9ec2c8a0c4964">More...</a><br /></td></tr>
<tr class="separator:a74eeb9464b6262f5d0b9ec2c8a0c4964"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a2dc9dd17ebc6ec57e4598a9ce48bad"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpepr3d_1_1_triangle_detail.html#a7a2dc9dd17ebc6ec57e4598a9ce48bad">paintShape</a> (const std::vector&lt; PeprTriangle &gt; &amp;triangles, const PeprVector3 &amp;direction, size_t color)</td></tr>
<tr class="memdesc:a7a2dc9dd17ebc6ec57e4598a9ce48bad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Paint a shape to triangle detail.  <a href="#a7a2dc9dd17ebc6ec57e4598a9ce48bad">More...</a><br /></td></tr>
<tr class="separator:a7a2dc9dd17ebc6ec57e4598a9ce48bad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a30215d8b668385e1f6c145545d9366f2"><td class="memItemLeft" align="right" valign="top">std::pair&lt; bool, bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpepr3d_1_1_triangle_detail.html#a30215d8b668385e1f6c145545d9366f2">correctSharedVertices</a> (<a class="el" href="classpepr3d_1_1_triangle_detail.html">TriangleDetail</a> &amp;other)</td></tr>
<tr class="memdesc:a30215d8b668385e1f6c145545d9366f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Makes sure all vertices on the common edge between these two triangles are matched Creates new vertices for both triangles if there are missing You will need to <a class="el" href="classpepr3d_1_1_triangle_detail.html#a55836364f8bca5dce29da4a7320adf65" title="Create new triangles from a set of colored polygons Tries to simplify the polygons in the process.">updateTrianglesFromPolygons()</a> after calling this method!  <a href="#a30215d8b668385e1f6c145545d9366f2">More...</a><br /></td></tr>
<tr class="separator:a30215d8b668385e1f6c145545d9366f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af71efedfe287618fc844fbd2b68b0082"><td class="memItemLeft" align="right" valign="top"><a id="af71efedfe287618fc844fbd2b68b0082"></a>
const std::vector&lt; <a class="el" href="classpepr3d_1_1_data_triangle.html">DataTriangle</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>getTriangles</b> () const</td></tr>
<tr class="separator:af71efedfe287618fc844fbd2b68b0082"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac206277a3049356735f0f8f3294ad3a8"><td class="memItemLeft" align="right" valign="top"><a id="ac206277a3049356735f0f8f3294ad3a8"></a>
const <a class="el" href="classpepr3d_1_1_data_triangle.html">DataTriangle</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>getOriginal</b> () const</td></tr>
<tr class="separator:ac206277a3049356735f0f8f3294ad3a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55836364f8bca5dce29da4a7320adf65"><td class="memItemLeft" align="right" valign="top"><a id="a55836364f8bca5dce29da4a7320adf65"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpepr3d_1_1_triangle_detail.html#a55836364f8bca5dce29da4a7320adf65">updateTrianglesFromPolygons</a> ()</td></tr>
<tr class="memdesc:a55836364f8bca5dce29da4a7320adf65"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create new triangles from a set of colored polygons Tries to simplify the polygons in the process. <br /></td></tr>
<tr class="separator:a55836364f8bca5dce29da4a7320adf65"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab27f8b435c7c88f80eb35caac5ae9d34"><td class="memItemLeft" align="right" valign="top"><a id="ab27f8b435c7c88f80eb35caac5ae9d34"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpepr3d_1_1_triangle_detail.html#ab27f8b435c7c88f80eb35caac5ae9d34">setColor</a> (size_t detailIdx, size_t color)</td></tr>
<tr class="memdesc:ab27f8b435c7c88f80eb35caac5ae9d34"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set color of a detail triangle. <br /></td></tr>
<tr class="separator:ab27f8b435c7c88f80eb35caac5ae9d34"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a7bf09704143a299bb2d6261d540729"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpepr3d_1_1_triangle_detail.html#a5a7bf09704143a299bb2d6261d540729">addPolygon</a> (const Polygon &amp;poly, size_t color)</td></tr>
<tr class="memdesc:a5a7bf09704143a299bb2d6261d540729"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add polygon to the detail.  <a href="#a5a7bf09704143a299bb2d6261d540729">More...</a><br /></td></tr>
<tr class="separator:a5a7bf09704143a299bb2d6261d540729"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1656510445bacca593a631571f83c7f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpepr3d_1_1_triangle_detail.html#af1656510445bacca593a631571f83c7f">addPolygonSet</a> (PolygonSet &amp;polySet, size_t color)</td></tr>
<tr class="memdesc:af1656510445bacca593a631571f83c7f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add polygon set to the detail.  <a href="#af1656510445bacca593a631571f83c7f">More...</a><br /></td></tr>
<tr class="separator:af1656510445bacca593a631571f83c7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d8d23f8835e264356b503cc495c71e4"><td class="memItemLeft" align="right" valign="top"><a id="a3d8d23f8835e264356b503cc495c71e4"></a>
std::set&lt; Point3 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpepr3d_1_1_triangle_detail.html#a3d8d23f8835e264356b503cc495c71e4">findPointsOnEdge</a> (const Segment3 &amp;edge)</td></tr>
<tr class="memdesc:a3d8d23f8835e264356b503cc495c71e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find all points of polygons that are on the edge. <br /></td></tr>
<tr class="separator:a3d8d23f8835e264356b503cc495c71e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af671c482070226f504855f702e1cf9ac"><td class="memTemplParams" colspan="2"><a id="af671c482070226f504855f702e1cf9ac"></a>
template&lt;class Archive &gt; </td></tr>
<tr class="memitem:af671c482070226f504855f702e1cf9ac"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>save</b> (Archive &amp;archive) const</td></tr>
<tr class="separator:af671c482070226f504855f702e1cf9ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acad2f44169bb8872522e60d11f54fe86"><td class="memTemplParams" colspan="2"><a id="acad2f44169bb8872522e60d11f54fe86"></a>
template&lt;class Archive &gt; </td></tr>
<tr class="memitem:acad2f44169bb8872522e60d11f54fe86"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>load</b> (Archive &amp;archive)</td></tr>
<tr class="separator:acad2f44169bb8872522e60d11f54fe86"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9bce9da8bea065df486537a2933f635c"><td class="memTemplParams" colspan="2">template&lt;typename ColorFunc &gt; </td></tr>
<tr class="memitem:a9bce9da8bea065df486537a2933f635c"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpepr3d_1_1_triangle_detail.html#a9bce9da8bea065df486537a2933f635c">changeColorIds</a> (const ColorFunc &amp;colorFunc)</td></tr>
<tr class="memdesc:a9bce9da8bea065df486537a2933f635c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Change color IDs of this detail.  <a href="#a9bce9da8bea065df486537a2933f635c">More...</a><br /></td></tr>
<tr class="separator:a9bce9da8bea065df486537a2933f635c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:adeb9f4f75d811ad26309a4638bced4b0"><td class="memItemLeft" align="right" valign="top"><a id="adeb9f4f75d811ad26309a4638bced4b0"></a>
static K::Point_2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpepr3d_1_1_triangle_detail.html#adeb9f4f75d811ad26309a4638bced4b0">toExactK</a> (const PeprPoint2 &amp;point)</td></tr>
<tr class="memdesc:adeb9f4f75d811ad26309a4638bced4b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert Point_2 from Pepr3d kernel to Exact kernel. <br /></td></tr>
<tr class="separator:adeb9f4f75d811ad26309a4638bced4b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afa092868a47bbadc6e4d48f4d985bfab"><td class="memItemLeft" align="right" valign="top"><a id="afa092868a47bbadc6e4d48f4d985bfab"></a>
static K::Point_3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpepr3d_1_1_triangle_detail.html#afa092868a47bbadc6e4d48f4d985bfab">toExactK</a> (const PeprPoint3 &amp;point)</td></tr>
<tr class="memdesc:afa092868a47bbadc6e4d48f4d985bfab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert Point_3 from Pepr3d kernel to Exact kernel. <br /></td></tr>
<tr class="separator:afa092868a47bbadc6e4d48f4d985bfab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1bab79b6e5843936aef0c47620a888ec"><td class="memItemLeft" align="right" valign="top"><a id="a1bab79b6e5843936aef0c47620a888ec"></a>
static K::Point_3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpepr3d_1_1_triangle_detail.html#a1bab79b6e5843936aef0c47620a888ec">toExactK</a> (const glm::vec3 &amp;vec)</td></tr>
<tr class="memdesc:a1bab79b6e5843936aef0c47620a888ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert glm::vec3 to Exact kernel. <br /></td></tr>
<tr class="separator:a1bab79b6e5843936aef0c47620a888ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a12c5b966586348c4dc96bba207ec9926"><td class="memItemLeft" align="right" valign="top"><a id="a12c5b966586348c4dc96bba207ec9926"></a>
static K::Vector_3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpepr3d_1_1_triangle_detail.html#a12c5b966586348c4dc96bba207ec9926">toExactK</a> (const PeprVector3 &amp;vec)</td></tr>
<tr class="memdesc:a12c5b966586348c4dc96bba207ec9926"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert Point_3 from Pepr3d kernel to Exact kernel. <br /></td></tr>
<tr class="separator:a12c5b966586348c4dc96bba207ec9926"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac85fa082aaa6c3f8cddca396516857d5"><td class="memItemLeft" align="right" valign="top"><a id="ac85fa082aaa6c3f8cddca396516857d5"></a>
static PeprPoint2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpepr3d_1_1_triangle_detail.html#ac85fa082aaa6c3f8cddca396516857d5">toNormalK</a> (const K::Point_2 &amp;point)</td></tr>
<tr class="memdesc:ac85fa082aaa6c3f8cddca396516857d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert Exact kernel Point_2 to normal Pepr3d kernel. <br /></td></tr>
<tr class="separator:ac85fa082aaa6c3f8cddca396516857d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a49ed4eb7b270a5173db8257e822cac14"><td class="memItemLeft" align="right" valign="top"><a id="a49ed4eb7b270a5173db8257e822cac14"></a>
static PeprPoint3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpepr3d_1_1_triangle_detail.html#a49ed4eb7b270a5173db8257e822cac14">toNormalK</a> (const K::Point_3 &amp;point)</td></tr>
<tr class="memdesc:a49ed4eb7b270a5173db8257e822cac14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert Exact kernel Point_3 to normal Pepr3d kernel. <br /></td></tr>
<tr class="separator:a49ed4eb7b270a5173db8257e822cac14"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a013e7b3a720d433ce10ea3eed3438fc4"><td class="memItemLeft" align="right" valign="top"><a id="a013e7b3a720d433ce10ea3eed3438fc4"></a>
static glm::vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpepr3d_1_1_triangle_detail.html#a013e7b3a720d433ce10ea3eed3438fc4">toGlmVec</a> (const PeprPoint3 &amp;pt)</td></tr>
<tr class="memdesc:a013e7b3a720d433ce10ea3eed3438fc4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert Pepr Point_3 to vec3. <br /></td></tr>
<tr class="separator:a013e7b3a720d433ce10ea3eed3438fc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a19a7cded9a34b708ac7e909d47c3b0a6"><td class="memItemLeft" align="right" valign="top"><a id="a19a7cded9a34b708ac7e909d47c3b0a6"></a>
static glm::vec3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpepr3d_1_1_triangle_detail.html#a19a7cded9a34b708ac7e909d47c3b0a6">toGlmVec</a> (const K::Point_3 &amp;point)</td></tr>
<tr class="memdesc:a19a7cded9a34b708ac7e909d47c3b0a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert Exact kernel Point_3 to vec3. <br /></td></tr>
<tr class="separator:a19a7cded9a34b708ac7e909d47c3b0a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a270f31457d95be3039509a36f1559c"><td class="memItemLeft" align="right" valign="top"><a id="a3a270f31457d95be3039509a36f1559c"></a>
static double&#160;</td><td class="memItemRight" valign="bottom"><b>exactToDbl</b> (const CGAL::Gmpq &amp;num)</td></tr>
<tr class="separator:a3a270f31457d95be3039509a36f1559c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ca54d4a96e232c5ed34095e2133c99e"><td class="memItemLeft" align="right" valign="top"><a id="a0ca54d4a96e232c5ed34095e2133c99e"></a>
static double&#160;</td><td class="memItemRight" valign="bottom"><b>exactToDbl</b> (const CGAL::Gmpz &amp;num)</td></tr>
<tr class="separator:a0ca54d4a96e232c5ed34095e2133c99e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad8daeb9c2bdb4d033a553ec4fa35e5a0"><td class="memItemLeft" align="right" valign="top"><a id="ad8daeb9c2bdb4d033a553ec4fa35e5a0"></a>
static std::map&lt; size_t, PolygonSet &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpepr3d_1_1_triangle_detail.html#ad8daeb9c2bdb4d033a553ec4fa35e5a0">createPolygonSetsFromTriangles</a> (const std::vector&lt; <a class="el" href="structpepr3d_1_1_triangle_detail_1_1_exact_triangle.html">ExactTriangle</a> &gt; &amp;trianglesExact)</td></tr>
<tr class="memdesc:ad8daeb9c2bdb4d033a553ec4fa35e5a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a map of [ColorID, PolygonSet] of polygon sets made of provided triangles @triangles array of DataTriangles, only used to get color information @trianglesExact array of Epeck Triangles, used to get exact bounds of each triangle. <br /></td></tr>
<tr class="separator:ad8daeb9c2bdb4d033a553ec4fa35e5a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8409d1df8edf713beaf1743c0399c6d4"><td class="memItemLeft" align="right" valign="top">static std::vector&lt; Triangle2 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpepr3d_1_1_triangle_detail.html#a8409d1df8edf713beaf1743c0399c6d4">triangulatePolygon</a> (const PolygonWithHoles &amp;poly)</td></tr>
<tr class="memdesc:a8409d1df8edf713beaf1743c0399c6d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Break down a polygon into an array of triangles.  <a href="#a8409d1df8edf713beaf1743c0399c6d4">More...</a><br /></td></tr>
<tr class="separator:a8409d1df8edf713beaf1743c0399c6d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a967a585a18caab0270893b3e757030d4"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpepr3d_1_1_triangle_detail.html#a967a585a18caab0270893b3e757030d4">isEdgeTraversable</a> (const Point2 &amp;form, const Point2 &amp;to, const std::map&lt; size_t, PolygonSet &gt; &amp;coloredPolys)</td></tr>
<tr class="memdesc:a967a585a18caab0270893b3e757030d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests for an existance of a path between the two points. All edges of this path must lie on an edge between the original points.  <a href="#a967a585a18caab0270893b3e757030d4">More...</a><br /></td></tr>
<tr class="separator:a967a585a18caab0270893b3e757030d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr class="memitem:ae52e30e876624fe52bdb0724da98bda5"><td class="memItemLeft" align="right" valign="top"><a id="ae52e30e876624fe52bdb0724da98bda5"></a>
std::vector&lt; std::pair&lt; Point2, double &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpepr3d_1_1_triangle_detail.html#ae52e30e876624fe52bdb0724da98bda5">getCircleSharedPoints</a> (const Circle3 &amp;circle, const Vector3 &amp;xBase, const Vector3 &amp;yBase) const</td></tr>
<tr class="memdesc:ae52e30e876624fe52bdb0724da98bda5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get points of a circle that are shared with border triangles. <br /></td></tr>
<tr class="separator:ae52e30e876624fe52bdb0724da98bda5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e04c9ef44eb6d48dacce49e547ba190"><td class="memItemLeft" align="right" valign="top"><a id="a4e04c9ef44eb6d48dacce49e547ba190"></a>
Segment3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpepr3d_1_1_triangle_detail.html#a4e04c9ef44eb6d48dacce49e547ba190">findSharedEdge</a> (const <a class="el" href="classpepr3d_1_1_triangle_detail.html">TriangleDetail</a> &amp;other)</td></tr>
<tr class="memdesc:a4e04c9ef44eb6d48dacce49e547ba190"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find shared edge between triangles. <br /></td></tr>
<tr class="separator:a4e04c9ef44eb6d48dacce49e547ba190"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a876f96672cba689d1f74cac6e179192f"><td class="memItemLeft" align="right" valign="top"><a id="a876f96672cba689d1f74cac6e179192f"></a>
Polygon&#160;</td><td class="memItemRight" valign="bottom"><b>projectShapeToPolygon</b> (const std::vector&lt; PeprPoint3 &gt; &amp;shape, const PeprVector3 &amp;direction)</td></tr>
<tr class="separator:a876f96672cba689d1f74cac6e179192f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d193b7c01d33c650b58738aed37e0e6"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpepr3d_1_1_triangle_detail.html#a9d193b7c01d33c650b58738aed37e0e6">addMissingPoints</a> (const std::set&lt; Point3 &gt; &amp;myPoints, const std::set&lt; Point3 &gt; &amp;theirPoints, const Segment3 &amp;sharedEdge)</td></tr>
<tr class="memdesc:a9d193b7c01d33c650b58738aed37e0e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add points that are missing to our polygons.  <a href="#a9d193b7c01d33c650b58738aed37e0e6">More...</a><br /></td></tr>
<tr class="separator:a9d193b7c01d33c650b58738aed37e0e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed92acb55850155cbc54142653afbcc4"><td class="memItemLeft" align="right" valign="top"><a id="aed92acb55850155cbc54142653afbcc4"></a>
Polygon&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpepr3d_1_1_triangle_detail.html#aed92acb55850155cbc54142653afbcc4">polygonFromCircle</a> (const Circle3 &amp;circle, int segments) const</td></tr>
<tr class="memdesc:aed92acb55850155cbc54142653afbcc4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct a polygon from a circle. <br /></td></tr>
<tr class="separator:aed92acb55850155cbc54142653afbcc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a01d113a2666085931fc5d6ff28ae57df"><td class="memItemLeft" align="right" valign="top"><a id="a01d113a2666085931fc5d6ff28ae57df"></a>
Polygon&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpepr3d_1_1_triangle_detail.html#a01d113a2666085931fc5d6ff28ae57df">polygonFromTriangle</a> (const PeprTriangle &amp;tri) const</td></tr>
<tr class="memdesc:a01d113a2666085931fc5d6ff28ae57df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a polygon from a PeprTriangle. <br /></td></tr>
<tr class="separator:a01d113a2666085931fc5d6ff28ae57df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b6a41c7c881886bde6d1543beac68c8"><td class="memItemLeft" align="right" valign="top"><a id="a8b6a41c7c881886bde6d1543beac68c8"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpepr3d_1_1_triangle_detail.html#a8b6a41c7c881886bde6d1543beac68c8">simplifyPolygons</a> ()</td></tr>
<tr class="memdesc:a8b6a41c7c881886bde6d1543beac68c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Simplify polygons, removing any vertices that are collinear. <br /></td></tr>
<tr class="separator:a8b6a41c7c881886bde6d1543beac68c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a0599a7b678c981256cfc1a2a720dd4"><td class="memItemLeft" align="right" valign="top"><a id="a3a0599a7b678c981256cfc1a2a720dd4"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpepr3d_1_1_triangle_detail.html#a3a0599a7b678c981256cfc1a2a720dd4">updatePolysFromTriangles</a> ()</td></tr>
<tr class="memdesc:a3a0599a7b678c981256cfc1a2a720dd4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate one colored polygon set for each color inside the triangle This is a slow operation. <br /></td></tr>
<tr class="separator:a3a0599a7b678c981256cfc1a2a720dd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e9541120fb03635e37a298df6a60dc3"><td class="memItemLeft" align="right" valign="top"><a id="a9e9541120fb03635e37a298df6a60dc3"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpepr3d_1_1_triangle_detail.html#a9e9541120fb03635e37a298df6a60dc3">addTrianglesFromPolygon</a> (const PolygonWithHoles &amp;poly, size_t color)</td></tr>
<tr class="memdesc:a9e9541120fb03635e37a298df6a60dc3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add triangles from this polygon to our triangles. <br /></td></tr>
<tr class="separator:a9e9541120fb03635e37a298df6a60dc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f5dfb297e953aba6b0ef3f80fede185"><td class="memItemLeft" align="right" valign="top"><a id="a0f5dfb297e953aba6b0ef3f80fede185"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpepr3d_1_1_triangle_detail.html#a0f5dfb297e953aba6b0ef3f80fede185">debugEdgeConsistencyCheck</a> ()</td></tr>
<tr class="memdesc:a0f5dfb297e953aba6b0ef3f80fede185"><td class="mdescLeft">&#160;</td><td class="mdescRight">Verify that the bound vertices are connected via a string of edges. <br /></td></tr>
<tr class="separator:a0f5dfb297e953aba6b0ef3f80fede185"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-static-methods"></a>
Static Private Member Functions</h2></td></tr>
<tr class="memitem:aa4a23f1168e2e50a4ea45ead29968204"><td class="memItemLeft" align="right" valign="top"><a id="aa4a23f1168e2e50a4ea45ead29968204"></a>
static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpepr3d_1_1_triangle_detail.html#aa4a23f1168e2e50a4ea45ead29968204">trianglePolygonsDoIntersect</a> (const Polygon &amp;first, const Polygon &amp;second)</td></tr>
<tr class="memdesc:aa4a23f1168e2e50a4ea45ead29968204"><td class="mdescLeft">&#160;</td><td class="mdescRight">Do two polygons that are triangles intersect This is faster than checking an intersection between polygons of any size. <br /></td></tr>
<tr class="separator:aa4a23f1168e2e50a4ea45ead29968204"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5e7973064972305de9c74d424d90225"><td class="memItemLeft" align="right" valign="top"><a id="ab5e7973064972305de9c74d424d90225"></a>
static Polygon&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpepr3d_1_1_triangle_detail.html#ab5e7973064972305de9c74d424d90225">polygonFromTriangle</a> (const Triangle2 &amp;tri)</td></tr>
<tr class="memdesc:ab5e7973064972305de9c74d424d90225"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a polygon from 2D triangle in plane coordinates. <br /></td></tr>
<tr class="separator:ab5e7973064972305de9c74d424d90225"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b2324c84ed90dc0e4ad7d14cdd5aa75"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpepr3d_1_1_triangle_detail.html#a0b2324c84ed90dc0e4ad7d14cdd5aa75">markDomains</a> (ConstrainedTriangulation &amp;ct)</td></tr>
<tr class="separator:a0b2324c84ed90dc0e4ad7d14cdd5aa75"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42d9d3fc7908f325cf64118061c6dea5"><td class="memItemLeft" align="right" valign="top"><a id="a42d9d3fc7908f325cf64118061c6dea5"></a>
static void&#160;</td><td class="memItemRight" valign="bottom"><b>markDomains</b> (ConstrainedTriangulation &amp;ct, ConstrainedTriangulation::Face_handle start, int index, std::deque&lt; ConstrainedTriangulation::Edge &gt; &amp;border)</td></tr>
<tr class="separator:a42d9d3fc7908f325cf64118061c6dea5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b75cb4b0e71622fe4ffdafdedecf379"><td class="memItemLeft" align="right" valign="top"><a id="a6b75cb4b0e71622fe4ffdafdedecf379"></a>
static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpepr3d_1_1_triangle_detail.html#a6b75cb4b0e71622fe4ffdafdedecf379">debugOnlyVerifyPolygonSet</a> (const PolygonSet &amp;pSet)</td></tr>
<tr class="memdesc:a6b75cb4b0e71622fe4ffdafdedecf379"><td class="mdescLeft">&#160;</td><td class="mdescRight">Verify that polygon set is made of valid polygons with holes. <br /></td></tr>
<tr class="separator:a6b75cb4b0e71622fe4ffdafdedecf379"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:a4739e317a83230e718680cabf62a4e59"><td class="memItemLeft" align="right" valign="top"><a id="a4739e317a83230e718680cabf62a4e59"></a>
std::vector&lt; <a class="el" href="classpepr3d_1_1_data_triangle.html">DataTriangle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpepr3d_1_1_triangle_detail.html#a4739e317a83230e718680cabf62a4e59">mTriangles</a></td></tr>
<tr class="memdesc:a4739e317a83230e718680cabf62a4e59"><td class="mdescLeft">&#160;</td><td class="mdescRight">Temporary storage for DataTriangles. This gets overwritten on every time <a class="el" href="classpepr3d_1_1_triangle_detail.html#a55836364f8bca5dce29da4a7320adf65" title="Create new triangles from a set of colored polygons Tries to simplify the polygons in the process.">updateTrianglesFromPolygons()</a> is run. Triangles stored here are non-degenerate triangles that roughly make up the original triangle. Becasue <a class="el" href="classpepr3d_1_1_data_triangle.html" title="Custom Triangle type holding the CGAL::Triangle_3 and additional data.">DataTriangle</a> is using a limited-precission, these triangles cannot be used to reconstruct the surface. <br /></td></tr>
<tr class="separator:a4739e317a83230e718680cabf62a4e59"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8ffb6f58e83ec892a8cd9d82d3e9054"><td class="memItemLeft" align="right" valign="top"><a id="aa8ffb6f58e83ec892a8cd9d82d3e9054"></a>
std::vector&lt; size_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpepr3d_1_1_triangle_detail.html#aa8ffb6f58e83ec892a8cd9d82d3e9054">mTrianglesToExactIdx</a></td></tr>
<tr class="memdesc:aa8ffb6f58e83ec892a8cd9d82d3e9054"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores index of exact triangle to every <a class="el" href="classpepr3d_1_1_data_triangle.html" title="Custom Triangle type holding the CGAL::Triangle_3 and additional data.">DataTriangle</a> of this detail (mTriangles.size() == mTrianglesToExactIdx.size()) Every <a class="el" href="classpepr3d_1_1_data_triangle.html" title="Custom Triangle type holding the CGAL::Triangle_3 and additional data.">DataTriangle</a> in this detail has matching exact triangle. But not all exact triangles have a DataTriange - some degenerate. <br /></td></tr>
<tr class="separator:aa8ffb6f58e83ec892a8cd9d82d3e9054"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6816ebdc0f458261f4f73e24c599bbdd"><td class="memItemLeft" align="right" valign="top"><a id="a6816ebdc0f458261f4f73e24c599bbdd"></a>
std::vector&lt; <a class="el" href="structpepr3d_1_1_triangle_detail_1_1_exact_triangle.html">ExactTriangle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpepr3d_1_1_triangle_detail.html#a6816ebdc0f458261f4f73e24c599bbdd">mTrianglesExact</a></td></tr>
<tr class="memdesc:a6816ebdc0f458261f4f73e24c599bbdd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores epeck triangles. This gets overwritten on every time <a class="el" href="classpepr3d_1_1_triangle_detail.html#a55836364f8bca5dce29da4a7320adf65" title="Create new triangles from a set of colored polygons Tries to simplify the polygons in the process.">updateTrianglesFromPolygons()</a> is run. This is used for saving andpolygonset reconstruction. <br /></td></tr>
<tr class="separator:a6816ebdc0f458261f4f73e24c599bbdd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a706689e78ae910e7bd4a799fc44db740"><td class="memItemLeft" align="right" valign="top"><a id="a706689e78ae910e7bd4a799fc44db740"></a>
std::vector&lt; std::vector&lt; size_t &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpepr3d_1_1_triangle_detail.html#a706689e78ae910e7bd4a799fc44db740">mPolygonDegenerateTriangles</a></td></tr>
<tr class="memdesc:a706689e78ae910e7bd4a799fc44db740"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores index into mTrianglesExact of every degenerate triangle(when represented as DataTriangle), grouped by the polygon it belongs to. <br /></td></tr>
<tr class="separator:a706689e78ae910e7bd4a799fc44db740"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a93dde966f3762bad3f47b0932bbcc70a"><td class="memItemLeft" align="right" valign="top"><a id="a93dde966f3762bad3f47b0932bbcc70a"></a>
std::map&lt; size_t, PolygonSet &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mColoredPolys</b></td></tr>
<tr class="separator:a93dde966f3762bad3f47b0932bbcc70a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c6c24850c358f6a553b78b1460338fe"><td class="memItemLeft" align="right" valign="top"><a id="a4c6c24850c358f6a553b78b1460338fe"></a>
<a class="el" href="classpepr3d_1_1_data_triangle.html">DataTriangle</a>&#160;</td><td class="memItemRight" valign="bottom"><b>mOriginal</b></td></tr>
<tr class="separator:a4c6c24850c358f6a553b78b1460338fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a80df9f3e1d10aafc8d6136490f332c5f"><td class="memItemLeft" align="right" valign="top"><a id="a80df9f3e1d10aafc8d6136490f332c5f"></a>
Polygon&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpepr3d_1_1_triangle_detail.html#a80df9f3e1d10aafc8d6136490f332c5f">mBounds</a></td></tr>
<tr class="memdesc:a80df9f3e1d10aafc8d6136490f332c5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bounds of the original triangle. <br /></td></tr>
<tr class="separator:a80df9f3e1d10aafc8d6136490f332c5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f21de29cd698369a8a8bf9f357cdcb2"><td class="memItemLeft" align="right" valign="top"><a id="a1f21de29cd698369a8a8bf9f357cdcb2"></a>
Plane&#160;</td><td class="memItemRight" valign="bottom"><b>mOriginalPlane</b></td></tr>
<tr class="separator:a1f21de29cd698369a8a8bf9f357cdcb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af49e18248a04af06f958001518b73db0"><td class="memItemLeft" align="right" valign="top"><a id="af49e18248a04af06f958001518b73db0"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpepr3d_1_1_triangle_detail.html#af49e18248a04af06f958001518b73db0">mColorChanged</a> = false</td></tr>
<tr class="memdesc:af49e18248a04af06f958001518b73db0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Did color of any detail triangle change since last triangulation? <br /></td></tr>
<tr class="separator:af49e18248a04af06f958001518b73db0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Represents additional triangles that replace the original one. </p>
<p>Allows "painting" over the original triangle by creating a polygonal representation of the new shapes, which is then converted back to triangles. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a9d193b7c01d33c650b58738aed37e0e6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9d193b7c01d33c650b58738aed37e0e6">&#9670;&nbsp;</a></span>addMissingPoints()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool pepr3d::TriangleDetail::addMissingPoints </td>
          <td>(</td>
          <td class="paramtype">const std::set&lt; Point3 &gt; &amp;&#160;</td>
          <td class="paramname"><em>myPoints</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::set&lt; Point3 &gt; &amp;&#160;</td>
          <td class="paramname"><em>theirPoints</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Segment3 &amp;&#160;</td>
          <td class="paramname"><em>sharedEdge</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Add points that are missing to our polygons. </p>
<dl class="section return"><dt>Returns</dt><dd>true if any points were added </dd></dl>

</div>
</div>
<a id="a5a7bf09704143a299bb2d6261d540729"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5a7bf09704143a299bb2d6261d540729">&#9670;&nbsp;</a></span>addPolygon()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pepr3d::TriangleDetail::addPolygon </td>
          <td>(</td>
          <td class="paramtype">const Polygon &amp;&#160;</td>
          <td class="paramname"><em>poly</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>color</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add polygon to the detail. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">poly</td><td>Polygon in the plane-space of this detail </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="af1656510445bacca593a631571f83c7f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af1656510445bacca593a631571f83c7f">&#9670;&nbsp;</a></span>addPolygonSet()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pepr3d::TriangleDetail::addPolygonSet </td>
          <td>(</td>
          <td class="paramtype">PolygonSet &amp;&#160;</td>
          <td class="paramname"><em>polySet</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>color</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add polygon set to the detail. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">poly</td><td>PolygonSet in the plane-space of this detail </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a9bce9da8bea065df486537a2933f635c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9bce9da8bea065df486537a2933f635c">&#9670;&nbsp;</a></span>changeColorIds()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ColorFunc &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void pepr3d::TriangleDetail::changeColorIds </td>
          <td>(</td>
          <td class="paramtype">const ColorFunc &amp;&#160;</td>
          <td class="paramname"><em>colorFunc</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Change color IDs of this detail. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ColorFunc</td><td>functor of type size_t func(size_t originalColor), that returns the new color ID </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a30215d8b668385e1f6c145545d9366f2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a30215d8b668385e1f6c145545d9366f2">&#9670;&nbsp;</a></span>correctSharedVertices()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::pair&lt; bool, bool &gt; pepr3d::TriangleDetail::correctSharedVertices </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classpepr3d_1_1_triangle_detail.html">TriangleDetail</a> &amp;&#160;</td>
          <td class="paramname"><em>other</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Makes sure all vertices on the common edge between these two triangles are matched Creates new vertices for both triangles if there are missing You will need to <a class="el" href="classpepr3d_1_1_triangle_detail.html#a55836364f8bca5dce29da4a7320adf65" title="Create new triangles from a set of colored polygons Tries to simplify the polygons in the process.">updateTrianglesFromPolygons()</a> after calling this method! </p>
<dl class="section return"><dt>Returns</dt><dd>&lt;bool,bool&gt; true if points were added to a triangle </dd></dl>

</div>
</div>
<a id="a967a585a18caab0270893b3e757030d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a967a585a18caab0270893b3e757030d4">&#9670;&nbsp;</a></span>isEdgeTraversable()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static bool pepr3d::TriangleDetail::isEdgeTraversable </td>
          <td>(</td>
          <td class="paramtype">const Point2 &amp;&#160;</td>
          <td class="paramname"><em>form</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Point2 &amp;&#160;</td>
          <td class="paramname"><em>to</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::map&lt; size_t, PolygonSet &gt; &amp;&#160;</td>
          <td class="paramname"><em>coloredPolys</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Tests for an existance of a path between the two points. All edges of this path must lie on an edge between the original points. </p>
<dl class="section return"><dt>Returns</dt><dd>true A path exists </dd></dl>

</div>
</div>
<a id="a0b2324c84ed90dc0e4ad7d14cdd5aa75"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0b2324c84ed90dc0e4ad7d14cdd5aa75">&#9670;&nbsp;</a></span>markDomains()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void pepr3d::TriangleDetail::markDomains </td>
          <td>(</td>
          <td class="paramtype">ConstrainedTriangulation &amp;&#160;</td>
          <td class="paramname"><em>ct</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<h2>( From <a class="el" href="namespace_c_g_a_l.html" title="CGAL Serialization functions.">CGAL</a> User Manual ) </h2>
<p>explore set of facets connected with non constrained edges, and attribute to each such set a nesting level. </p>

</div>
</div>
<a id="a74eeb9464b6262f5d0b9ec2c8a0c4964"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a74eeb9464b6262f5d0b9ec2c8a0c4964">&#9670;&nbsp;</a></span>paintShape() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pepr3d::TriangleDetail::paintShape </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; PeprPoint3 &gt; &amp;&#160;</td>
          <td class="paramname"><em>shape</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const PeprVector3 &amp;&#160;</td>
          <td class="paramname"><em>direction</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>color</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Paint a shape to triangle detail. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">shape</td><td>Collection of points that form a polygon, that is going to be projected onto the <a class="el" href="classpepr3d_1_1_triangle_detail.html" title="Represents additional triangles that replace the original one.">TriangleDetail</a> </td></tr>
    <tr><td class="paramname">direction</td><td>Direction vector of the projection </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a7a2dc9dd17ebc6ec57e4598a9ce48bad"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7a2dc9dd17ebc6ec57e4598a9ce48bad">&#9670;&nbsp;</a></span>paintShape() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pepr3d::TriangleDetail::paintShape </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; PeprTriangle &gt; &amp;&#160;</td>
          <td class="paramname"><em>triangles</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const PeprVector3 &amp;&#160;</td>
          <td class="paramname"><em>direction</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>color</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Paint a shape to triangle detail. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">triangles</td><td>Collection of triangles that form a shape, that is going to be projected onto the <a class="el" href="classpepr3d_1_1_triangle_detail.html" title="Represents additional triangles that replace the original one.">TriangleDetail</a> </td></tr>
    <tr><td class="paramname">direction</td><td>Direction vector of the projection </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a18e1da05e7fb8b50198a9152d238af85"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a18e1da05e7fb8b50198a9152d238af85">&#9670;&nbsp;</a></span>paintSphere()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pepr3d::TriangleDetail::paintSphere </td>
          <td>(</td>
          <td class="paramtype">const PeprSphere &amp;&#160;</td>
          <td class="paramname"><em>sphere</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>minSegments</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>color</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Paint sphere onto this detail. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">minSegments</td><td>Minimum number of segments of each sphere/plane intersection. Additional points may be added on boundaries. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a8409d1df8edf713beaf1743c0399c6d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8409d1df8edf713beaf1743c0399c6d4">&#9670;&nbsp;</a></span>triangulatePolygon()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt; TriangleDetail::Triangle2 &gt; pepr3d::TriangleDetail::triangulatePolygon </td>
          <td>(</td>
          <td class="paramtype">const PolygonWithHoles &amp;&#160;</td>
          <td class="paramname"><em>poly</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Break down a polygon into an array of triangles. </p>
<dl class="section return"><dt>Returns</dt><dd>vector of exact triangles that make up the polygon </dd></dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>D:/Home/MFF/1-Mgr/projekt/pepr3d/src/geometry/<a class="el" href="_triangle_detail_8h_source.html">TriangleDetail.h</a></li>
<li>D:/Home/MFF/1-Mgr/projekt/pepr3d/src/geometry/TriangleDetail.cpp</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespacepepr3d.html">pepr3d</a></li><li class="navelem"><a class="el" href="classpepr3d_1_1_triangle_detail.html">TriangleDetail</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
  </ul>
</div>
</body>
</html>
